// #include<stdio.h>
// //  刷题5 循环结构

// int main()       7
// {
//     int m;
//     for(m=1;m++<=5;)//输出2 3 4 5 6
//     //以上这一行为漏打;
//     //库克原题
//     for(m=1;m++<=5;);
//     // 输出为7
//     printf("%d\n",m);
//     return 0;
// }

// void main()
// {
//     int i,s=0;
//     for(i=1;i<10;i+=2)
//         s+=i+1;
//     printf("%d\n",s);
//     return 0;
// }

// p34  6  
// void main()
// {
//     int i;
//     for(i=1;i<6;i++)
//     {
//         if(i%2)
//         {
//             printf("#");
//             continue;
//         }
//         printf("*");
//     }
//     printf("\n");
// }

// void main()
// {
//     int i=0;
//     while(i<9)
//     {
//         if(i<1)
//             continue;//直接跳出，i永为0
//         if(i==4)
//             break;
//         i++;
//     }
// }

//  P42  T1
//从键盘上输入若干个学生的成绩，统计并输出最高成绩和最低成绩，当输入负数时结束
// void main()
// {
//     float x,max,min;
//     scanf("%f",&x);
//     max=x; // 由于一开始只读取了一个数，
//     min=x; // 所以x即是最大值也是最小值
//     while(x>0.0)
//     {
//     if(x>max)
//         max=x;
//     if(x<min)
//         min=x;
//     scanf("%f",&x);
//     }    

//     printf("最大值为%.2f:,最小值为%.2f\n",max,min);
// }

//   P42  T2
//   输入100以内能被3整除且个位数为6的所有整数
// void main()
// {
//     int i,j;
//     for(i=0;i<10;i++)
//     {
//         j=i*10+6;
//         if(j%3!=0) //若取余不等于0，则无法被三整除
//             continue;
//         printf("%d",j);
//     }
// }

//  P43 T3
// 计算：s=1+12+123+1234+12345 
// void main()
// {
//     int t=0,s=0,i;
//     for(i=0;i<6;i++)
//     {
//         t=i+t*10;
//         s=s+t;
//     }
//     printf("%d\n",s);
// }

// P43 输出如下形式的方阵
//             13 14 15 16           
//              9 10 11 12           
//               5 6 7 8           
//               1 2 3 4
// void main()
// {
//     int i,j,x;
//     for(j=4;j>0;j--)  //矩阵行数，对应4行
//     {
//         for(i=1;i<=4;i++) //矩阵列数
//         {
//             x=(j-1)*4+i; //计算要打印的矩阵元素的值
//             printf("%4d",x);
//         }
//         printf("\n");
//     }
// }           

// P45 输入数值n(0<n<10),输出一个数字金字塔，如输入"4",则输出如下所示金字塔
//          1
//         2 2
//        3 3 3
//       4 4 4 4
// void main()
// {
//     int i,j,n,k;
//     printf("Input n(0<n<10):\n");
//     scanf("%d",&n);
//     for(i=1;i<=n;i++)
//     {
//         for(j=1;j<=n-i;j++)
//             printf(" ");
//         for(k=1;k<=i;k++)
//             printf("%d ",i);
//         printf("\n");
//     }
// }

// // P46 T3 编程求2-100之内的素数
// void main()
// {
//     int i,j;
//     for(i=2;i<100;i++)
//     {
//         j=2;
//         while(j<=i/2)
//         {
//             if(i%j==0)
//                 break;
//             else
//                 j++;
//         }
//         if(j>i/2)
//         printf("%d ",i);
//     }
// }

// P46 T4. 通过键盘输入任意一些字符，统计字母、数字、空格及其他字符的个数（除数字、空格和字母以外的字符均属于其他字符），当通过键盘输入“$”时结束。
// void main()
// {
//     char c;
//     int letters=0,space=0,numbers=0,others=0;
//     printf("请输入一组字符:");
//     while((c=getchar())!='$')
//     {
//         if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
//             letters++;
//         else if(c==' ')
//             space++;
//         else if(c>='0'&&c<='9')
//             numbers++;
//         else
//             others++;
//     }
//     printf("共有%d个英文字母，%d个数字，%d个空格，%d个其他字符\n",letters,numbers,space,others);
// }

// // P46 输出九九乘法表
// void main()
// {
//     int i,j;
//     for(i=1;i<=9;i++)
//     {
//         for(j=1;j<=i;j++)
//             printf("%d*%d=%-3d",j,i,j*i); //-3表示结果占3个字符宽度
//         printf("\n");
//     }6
// }

// void main()
// {
//     int x;
//     char y;
//     scanf("x=%d y=%c",&x,&y);
// }

// P18  输入三个数并输出其中的最小值
// void main()
// {
//     int a,b,c,t,min;
//     scanf("%d,%d,%d",&a,&b,&c);
//     t=a<b?a:b;  //a b比较大小，输入小的那个
//     min=t<c?t:c; //将c于ab之中较小的数对比，若t<c输出T，否则输出C
// }

// //P18 随机产生两个三位的自然数，并求其平均值
// #include<stdlib.h>
// void main()
// {
//     int x,y;
//     float aver;
//     x=rand()%900+100;  //rand%900返回0-899之间的随机整数
//     y=rand()%900+100;
//     aver=(x+y)/2.0;
//     printf("\nx=%d,y=%d,aver=%f\n",x,y,aver);
// }

//P28 输入一个字符，如果它是一个小写字母，则把他变成大写字母，若他是一个大写字母，则把它变成小写字母，其他字符不变；
// tips：小写字母的ASCII码值币比大写字母的ASCII码值大32
// void main()
// {
//     char ch;
//     scanf("%c",&ch);
//     if(ch>='A'&&ch<='Z')
//         ch=ch+32;
//     else
//         if(ch>='a'&&ch<='z')
//             ch-=32;
//     printf("%c\n",ch);
// }

//P29 输入三个整数，按从小到大的顺序排列并进行输出
// void main()
// {
//     int a,b,c,t;
//     scanf("%d,%d,%d",&a,&b,&c);
//     if(a>b)
//     {
//         t=a;a=b;b=t;
//     }
//     if(a>c)
//     {
//         t=a;a=c;c=t;
//     }    
//     if(b>c)
//     {
//         t=b;b=c;c=t;
//     }  
//     printf("%d,%d,%d\n",a,b,c);
// }

// void main()
// {
//     char str[]="String";
//     printf("%d\n",strlen(strcpy(str,"China")));
// }

void main()
{
    int i,s[5]={0},x;
    printf("Input some numbers(0-4):");
    while(x!=-1){
        scanf("%d",&x);
        if(x>=0&&x<=4)
            s[x]++;
    }
    for(i=0;i<=4;i++)
    printf("%d: %d\n",i,s[i]);
}